(1.) Field of the Invention
The present invention relates to the field of network operations. More particularly, this invention relates to a method and an apparatus for automatically enabling a system to continue to function in a diminished capacity when disconnected from a network.
(2.) Prior Art
Typically, today's computing environments consist of a core cluster of servers and many desktop workstations. In addition, an increasing number of personal computers (PC's) are now on a network and have become part of a distributed system. This has led to a number of work stations and PC's implementing a client server model of a system of decentralized distributed processing which depends on a functional network for successful operation.
One problem which arises if a network operation fails is that the system interfaced with the network is often rendered unusable. Usually, this unusable state is a temporary condition. One known recovery procedure is to periodically retry the failed network operation until conditions improve. Some network clients, however, ignore a network failure and retry forever, effectively preventing themselves from continuing to operate even in a diminished capacity. Further, in some cases, the system appears to hang or freeze during a period of disconnection.
Another approach to solving the problem is to modify existing services and applications so that they have more information regarding network status. Once these services and applications have more information, they become more aware of the characteristics of the underlying communications medium. This approach is very expensive and time consuming.
FIG. 1a illustrates an exemplary network layer residing in the memory of a system coupled to a network. FIG. 1b is a data flow diagram illustrating the flow of an outgoing data packet originating from an application running on the system. If the system is disconnected from the network and an outgoing data packet has been generated, a system with a prior art method and apparatus as illustrated by FIGS. 1a and 1b will typically disallow a user from continuing with normal operation of the system until the network connection is up again.
The networking layer illustrated in FIG. 1a is based on TCP/IP (Transmission Control Protocol/Internet Protocol) implementation. TCP/IP is a set of communication protocols which support peer-to-peer connectivity functions for both local and wide area networks.
The top layer includes applications 100 running on the system. The second layer includes a transport layer, which in a TCP/IP implementation may be comprised of UDP (user datagram protocol) 102, TCP (Transmission Control Protocol) 104 and ICMP (Internet Control Message Protocol) 106. UDP 102 on top of TCP/IP is a packet-level protocol built directly on IP 108 and is typically used for application-to-application communication between TCP/IP host systems. TCP 104 is a communications protocol typically used in Internet and in any network which follows the U.S. Department of Defense Standards for Inter-Network Protocol. TCP 104 provides a reliable host-to-host protocol between hosts in packet-switched communications networks and in interconnected systems of such networks. Further, TCP 104 assumes that IP 108 is the underlying protocol. ICMP (Internet Control Message Protocol) 106 is a protocol used to communicate with a source host, for example, to report an error in a datagram and is an integral part of a typical IP 108.
The next layer is the Internet layer, which is made up of IP (Internet Protocol) 108 and allows the user to create internets. IP 108 is a protocol used to route data from a source to its destination in an Internet environment.
Beneath the network layer are exemplary networking drivers which allow IP 108 to transmit and receive packets, and include ethernet 110, PPP (Point-to-Point Protocol) 112 and wireless 114. PPP 112 is typically used for serial devices including phone lines, synchronous dedicated lines, and ISDN (Integrated Services Digital Network). Ethernet 110 is typically a 10-megabit base band local area network which allows multiple stations to access a transmission medium at will without prior coordination. Ethernet 110 avoids contention by using carrier sense and deference, and resolves contention by using collision detection and transmission. The networking layers illustrated in FIG. 1a are typical in a standard network layer and are well known in the art. When an outgoing packet addressed to a network is transmitted and the network connection is down, a user is disallowed from continuing normal operation of the system. Further, the network layer illustrated does not have any facilities to overcome this problem.
FIG. 1b illustrates an exemplary transmission of packet 120 through the networking layers illustrated in FIG. 1a. A packet in TCP/IP is the unit of data passed across the interface between the Internet (IP) layer and the link layer (i.e. the layer with the earlier mentioned drivers, Ethernet 110, PPP 112, etc.). A packet typically includes an IP header and data and may be a complete IP datagram or a fragment of an IP datagram. A datagram contains a source and destination address along with the data. In the second layer (as illustrated in FIG. 1a), packet 120 is encapsulated by transport header 122. In the third layer (as illustrated in FIG. 1a), IP header 124 is combined with transport header 122 and packet 120. In a typical disconnect situation where a system interfaced with a network has no available interfaces, no response is transmitted back to the system. A typical system will then either hang, or will retry to connect with the network, disallowing a user of the system to continue with normal operation.
It is desirable to have a method and an apparatus that allows for continued functionality even when a system interfaced with a network is temporarily disconnected from the network.